The technology disclosed relates to implementing a novel architecture of a finite state machine (abbreviated FSM) that can be used for testing. In particular, it can be used for testing communications devices and communication protocol behaviors.
Several approaches have been proposed to implement finite state machines. Some focus on minimizing memory consumption, combining or embedding finite state machine classes written in different programming languages, and exchanging inputs, triggers, or state values between finite state machines. Others implement look-up tables for actions to be performed in each state. Some of these architectures are optimized for hardware rather than software implementation.
Existing FSM architectures are cumbersome for test case modeling and generation, especially architectures that require a user to provide a large number of tables to represent states, inputs, triggers, actions, conditions, and events and that require the user to manage these tables. These architectures do not provide intrinsic support for test related operations.
An opportunity arises to provide users with a novel FSM architecture to create test cases or protocol behavior models. Fast and rapid deployment, configurability, maintenance, scalability, and ability to support multiple communicating finite state machines may result.